%%% This is file `zmtmacs.sty', version <1.0a> 
%%% 
%%% Copyright (C) 1994 Aloysius G. Helminck. All rights reserved. 
%%% Permission is granted to to customize the declarations in this 
%%% file to serve the needs of your installation. However, no permission
%%% is granted to distribute a modified version of this file under 
%%% its original name. 
%%%
%%% This file is a modification of the MTMACS.TEX file from Michael Spivak 
%%% of the TEXPLORATORS CORPORATION, to be able to use the virtual mathtime
%%% fonts with plain tex. I also used parts from the file "mathtime.tex"
%%% from Adam H. Lewenberg.
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Save the catcodes of @ and ". (From Michal Jaegermann)
\xdef\recoveratcodezzzz{\catcode`\noexpand\@=\the\catcode`\@}
\xdef\recoverquotecodezqrz{\catcode`\noexpand\"=\the\catcode`\"}
\catcode`\@=11
\let\true@special=\special
\def\special{\catcode`\_=8 \special@}
\def\special@#1{\true@special{#1}\catcode`\_=\active}
\catcode`\"=12
%
%%
%%    Define some \newif's.
%%
\newif\ifAMSTEXloaded
\newif\ifAMSPPTloaded
%
\expandafter\ifx\csname amsppt.sty\endcsname\relax
     \AMSPPTloadedfalse\else\AMSPPTloadedtrue\fi
%
\ifx\amstexloaded@\relax\AMSTEXloadedtrue\else\AMSTEXloadedfalse\fi
%%
\mathchardef\varGamma="0100
\mathchardef\varDelta="0101
\mathchardef\varTheta="0102
\mathchardef\varLambda="0103
\mathchardef\varXi="0104
\mathchardef\varPi="0105
\mathchardef\varSigma="0106
\mathchardef\varUpsilon="0107
\mathchardef\varPhi="0108
\mathchardef\varPsi="0109
\mathchardef\varOmega="010A
\ifx\amstexloaded@\relax
\mathchardef\varkappa="017E
\fi

\mathchardef\comp="2242
\def\widebar{\mathaccent"0253 }
%%
%% For Textures fonts we need to redefine the \AA macro for Plain and LaTeX. 
%% the macros depend on the size of the box for the CM ring character
%% to be much wider than just the width of the ring. The times-roman
%% character is quite small and will offset the ring far to the left.
%% we adjust the size of the box for the ring to be placed in so that
%% it works "reasonably well" for roman, italic, and bold versions.
%\def\AA{\leavevmode\setbox0\hbox{A}\dimen@\ht0\advance\dimen@-0.85ex%
%  \rlap{\raise.67\dimen@\hbox to \wd0{\hss\char'27\hss}}A}
\def\hbar{{\mathchar'26\mkern-6.7muh}}
\def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr
     \not\mathrel{\mkern14mu}\crcr
     \noalign{\nointerlineskip}
     \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}}

\ifx\amstexloaded@\relax
 \def\varinjlim{\mathop{\vtop{\ialign{##\crcr
  \hfil\the\textfont\z@ lim\hfil\crcr
  \noalign{\nointerlineskip}\rightarrowfill\crcr
  \noalign{\nointerlineskip\kern-\ex@}\crcr}}}}
 \def\varprojlim{\mathop{\vtop{\ialign{##\crcr
  \hfil\the\textfont\z@ lim\hfil\crcr
  \noalign{\nointerlineskip}\leftarrowfill\crcr
  \noalign{\nointerlineskip\kern-\ex@}\crcr}}}}
 \def\varliminf{\mathop{\underline{\vrule height\z@ depth.2ex width\z@
  \hbox{\the\textfont\z@ lim}}}}
 \def\varlimsup{\mathop{\overline{\hbox{\the\textfont\z@ lim}}}}
 \def\spdot{^{\hbox{\raise\ex@\hbox{\the\textfont\z@.}}}}
 \def\spddot{^{\hbox{\raise\ex@\hbox{\the\textfont\z@..}}}}
 \def\spdddot{^{\hbox{\raise\ex@\hbox{\the\textfont\z@...}}}}
 \def\spddddot{^{\hbox{\raise\ex@\hbox{\the\textfont\z@....}}}}
\fi
\ifx\amstexloaded@\relax
 \mathchardef\dotacc"0250
 \def\dddot@#1#2{\setbox\z@\hbox{$#1#2$}\setbox\tw@\hbox{$#1\infty$}%
  \dimen@\ht\tw@\ifdim\ht\z@<\dimen@\dimen@\ht\z@\fi
  \setbox\tw@\hbox{$#1#2\mathchar"012D$}\dimen@ii\wd\tw@
  \advance\dimen@ii-\wd\z@ 
  \setbox\z@\hbox{$#1\rhook$}\advance\dimen@ii-\wd\z@
  \vbox{\offinterlineskip\ialign{\hfil$#1##$\hfil\cr
   \kern\dimen@ii\dotacc\mkern-2.5mu\dotacc\mkern-2.5mu\dotacc\cr
   \noalign{\vskip-\dimen@}#2\cr}}}
 \def\dddot{\mathpalette\dddot@}
 \def\ddddot@#1#2{\setbox\z@\hbox{$#1#2$}\setbox\tw@\hbox{$#1\infty$}%
  \dimen@\ht\tw@\ifdim\ht\z@<\dimen@\dimen@\ht\z@\fi
  \setbox\tw@\hbox{$#1#2\mathchar"012D$}\dimen@ii\wd\tw@
  \advance\dimen@ii-\wd\z@ 
  \setbox\z@\hbox{$#1\rhook$}\advance\dimen@ii-\wd\z@
  \vbox{\offinterlineskip\ialign{\hfil$#1##$\hfil\cr
   \kern\dimen@ii\dotacc\mkern-2.5mu\dotacc\mkern-2.5mu\dotacc
    \mkern-2.5mu\dotacc\cr
   \noalign{\vskip-\dimen@}#2\cr}}}
 \def\ddddot{\mathpalette\ddddot@}
\fi
\newcount\uproot@
\newcount\leftroot@
\ifx\amstexloaded@\relax\else  
 \def\nonmatherr@#1{\errmessage{\noexpand#1allowed only in math mode}}
\fi
\def\uproot#1{\relax\ifmmode\uproot@#1\relax\else\nonmatherr@\uproot\fi}
\def\leftroot#1{\relax\ifmmode\leftroot@#1\relax\else\nonmatherr@\leftroot\fi}
\def\root#1\of#2{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$}%
 \mathpalette\r@@t{#2}}
\def\r@@t#1#2{\setbox\z@\hbox{$\uproot@\z@\leftroot\z@\m@th#1\sqrt{#2}$}%
 \dimen@\ht\z@\advance\dimen@-\dp\z@
 \dimen@ii\dimen@
  \ifdim\dimen@>30\p@\advance\dimen@ii-\sixt@@n\p@\else
  \ifdim\dimen@>24\p@\advance\dimen@ii-8\p@\else
  \ifdim\dimen@>18\p@\advance\dimen@ii-6\p@\else
  \ifdim\dimen@>12\p@\advance\dimen@ii-4\p@\else
  \ifdim\dimen@>10\p@\advance\dimen@ii-\tw@\p@\fi\fi\fi\fi\fi
 \setbox\tw@\hbox{$\m@th#1\mskip\uproot@ mu$}\advance\dimen@ii by1.667\wd\tw@
 \mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@ii\copy\rootbox
 \mkern-8mu\mkern\leftroot@ mu\box\z@\leftroot\z@\uproot\z@}
\def\space@.{\futurelet\space@\relax}
\space@. %
\expandafter\let\csname subscript character \string_\endcsname_
\catcode`\_=\active
\def_{\ifmmode\expandafter\sb@\else
 \expandafter\csname subscript character \string_\endcsname\fi}
\let\sb_
\ifnum\catcode`\^^A=8 \catcode`\^^A\active\let^^A_\fi
\def\sb@#1{\csname subscript character \string_\endcsname
 {\futurelet\next\sb@@#1}}
\def\sb@@{%
 \ifx\next\space@\def\next@. {\futurelet\next\sb@@}\else
  \def\next@.{%
   \ifx\next j\mkern-\tw@ mu\else
   \ifx\next f\mkern-\tw@ mu\else
   \ifx\next p\mkern-\@ne mu
   \fi\fi\fi}%
 \fi
 \next@.}
%%
\def\jadjust{\mkern-\tw@ mu}
\ifx\laxread@\undefined\else\Nonexpanding_\fi  
%%
%% The following fontdefinitions are from mtmacs.tex
%%
\def\FONT@#1#2{\expandafter\ifx\csname#1#2\endcsname\relax
 \expandafter\expandafter\expandafter\global
  \expandafter\font\csname#1#2\endcsname=#1#2\fi
 \def\next@{\let\next@}%
 \expandafter\next@\csname#1#2\endcsname}
\def\PSZ@{\edef\nextiii@{ at \the\dimen@}}
%
\def\MTEX#1{%
 \dimen@#1\relax\PSZ@
 \FONT@{MTEX}\nextiii@
 \textfont\thr@@\next@
 \scriptfont\thr@@\next@
 \scriptscriptfont\thr@@\next@
 \setbox\z@\hbox{\next@ B}\p@renwd\wd\z@
 \ifx\amstexloaded@\relax
  \buffer@\fontdimen13 \next@
  \buffer\buffer@
\fi}
%
\def\SIFS@#1{\def\next@##1##2 ##3\next@{\def\nextiv@{##1##2}}%
 \edef\nextii@{\noexpand\next@#1\space\noexpand\next@}\nextii@}
\def\MathRoman#1#2#3#4{%
 \SIFS@{#1}%
 \dimen@#2\relax\PSZ@
 \FONT@\nextiv@\nextiii@\textfont\z@\next@
 \dimen@#3\relax\PSZ@
 \FONT@\nextiv@\nextiii@\scriptfont\z@\next@
 \dimen@#4\relax\PSZ@
 \FONT@\nextiv@\nextiii@\scriptscriptfont\z@\next@}
\def\MathBold#1#2#3#4{%
 \SIFS@{#1}%
 \dimen@#2\relax\PSZ@
 \FONT@\nextiv@\nextiii@\textfont\bffam\next@
 \dimen@#3\relax\PSZ@
 \FONT@\nextiv@\nextiii@\scriptfont\bffam\next@
 \dimen@#4\relax\PSZ@
 \FONT@\nextiv@\nextiii@\scriptscriptfont\bffam\next@}
\def\MathItalic#1#2#3#4{%
 \SIFS@{#1}%
 \dimen@#2\relax\PSZ@
 \FONT@\nextiv@\nextiii@\textfont\itfam\next@
 \dimen@#3\relax\PSZ@
 \FONT@\nextiv@\nextiii@\scriptfont\itfam\next@
 \dimen@#4\relax\PSZ@
 \FONT@\nextiv@\nextiii@\scriptscriptfont\itfam\next@}
\def\MathOblique#1#2#3#4{%
 \SIFS@{#1}%
 \dimen@#2\relax\PSZ@
 \FONT@\nextiv@\nextiii@\textfont\slfam\next@
 \dimen@#3\relax\PSZ@
 \FONT@\nextiv@\nextiii@\scriptfont\slfam\next@
 \dimen@#4\relax\PSZ@
 \FONT@\nextiv@\nextiii@\scriptscriptfont\slfam\next@}
\def\alloc@@#1#2#3#4#5{\global\advance\count1#1by\@ne
 \ch@ck#1#4#2\allocationnumber=\count1#1
 \global#3#5=\allocationnumber}
\def\MathBoldItalic#1#2#3#4{%
 \ifx\bfitfam\undefined
  \alloc@@8\fam\chardef\sixt@@n\bfitfam
 \fi
 \SIFS@{#1}%
 \dimen@#2\relax\PSZ@
 \FONT@\nextiv@\nextiii@\textfont\bfitfam\next@
 \dimen@#3\relax\PSZ@
 \FONT@\nextiv@\nextiii@\scriptfont\bfitfam\next@
 \dimen@#4\relax\PSZ@
 \FONT@\nextiv@\nextiii@\scriptscriptfont\bfitfam\next@\relax
 \ifx\amstexloaded@\relax
  \def\bolditalic{\relax\ifmmode\expandafter\bolditalic@\else
   \expandafter\nonmatherr@\expandafter\bolditalic\fi}%
  \def\bolditalic@##1{{\bolditalic@@{##1}}}%
  \def\bolditalic@@##1{\fam\bfitfam\relax##1}%
  \def\textdef@@##1{\textdef@##1\rm\textdef@##1\bf\textdef@##1\sl
    \textdef@##1\it\textdef@##1\bfit}%
 \else
  \def\bfit{\fam\bfitfam}%
 \fi}
\def\Calligraphic#1#2#3{%
 \ifx\Calfam\undefined
 \alloc@@8\fam\chardef\sixt@@n\Calfam
  \ifx\amstexloaded@\relax
   \def\Cal@@##1{\noaccents@\fam\Calfam##1}%  
  \else
  \def\cal{\fam\Calfam}%                     
  \fi
 \fi
 \SIFS@{#1}%
 \FONT@\nextiv@\empty\textfont\Calfam\next@\skewchar\next@48
 \SIFS@{#2}%
 \FONT@\nextiv@\empty\scriptfont\Calfam\next@\skewchar\next@48
 \SIFS@{#3}%
 \FONT@\nextiv@\empty\scriptscriptfont\Calfam\next@\skewchar\next@48\relax}
\def\MathPiSix#1#2#3#4{%
 \ifx\MathPiSixfam\undefined
  \alloc@@8\fam\chardef\sixt@@n\MathPiSixfam
  \ifx\amstexloaded@\relax\else
   \def\Bbb{\relax\ifmmode\expandafter\Bbb@\else
    \expandafter\nonmatherr@\expandafter\Bbb\fi}%
   \def\Bbb@##1{{\Bbb@@{##1}}}%
  \fi
 \def\Bbb@@##1{\noaccents@\fam\MathPiSixfam##1}%
 \fi
 \SIFS@{#1}%
 \dimen@#2\relax\dimen@.95\dimen@\PSZ@
 \FONT@\nextiv@\nextiii@\textfont\MathPiSixfam\next@
 \dimen@#3\relax\dimen@.95\dimen@\PSZ@
 \FONT@\nextiv@\nextiii@\scriptfont\MathPiSixfam\next@
 \dimen@#4\relax\dimen@.95\dimen@\PSZ@
 \FONT@\nextiv@\nextiii@\scriptscriptfont\MathPiSixfam\next@}
\def\MathPiTwofrak#1#2#3#4{%
 \ifx\MathPiTwofrakfam\undefined
  \alloc@@8\fam\chardef\sixt@@n\MathPiTwofrakfam
  \ifx\amstexloaded@\relax\else
   \def\frak{\relax\ifmmode\expandafter\frak@\else
    \expandafter\nonmatherr@\expandafter\frak\fi}%
   \def\frak@##1{{\frak@@{##1}}}%
   \let\goth\frak
  \fi
 \fi
 \def\frak@@##1{\fam\MathPiTwofrakfam\relax##1}%
 \SIFS@{#1}%
 \dimen@#2\relax\dimen@.88\dimen@\PSZ@
 \FONT@\nextiv@\nextiii@\textfont\MathPiTwofrakfam\next@
 \dimen@#3\relax\dimen@.88\dimen@\PSZ@
 \FONT@\nextiv@\nextiii@\scriptfont\MathPiTwofrakfam\next@
 \dimen@#4\relax\dimen@.88\dimen@\PSZ@
 \FONT@\nextiv@\nextiii@\scriptscriptfont\MathPiTwofrakfam\next@}
\def\hexnumber@#1{\ifcase#1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or
 9\or A\or B\or C\or D\or E\or F\fi}
\def\MathPiTwoScript#1#2#3#4{%
 \ifx\MathPiTwoScriptfam\undefined
  \alloc@@8\fam\chardef\sixt@@n\MathPiTwoScriptfam
  \edef\MathPiTwoScriptfam@{\hexnumber@\MathPiTwoScriptfam}%
  \def\Script{\relax\ifmmode\expandafter\Script@\else
   \expandafter\nonmatherr@\expandafter\Script\fi}%
  \def\Script@##1{{\Script@@{##1}}}%
  \def\Script@@##1{\noaccents@
   \count@=`##1\advance\count@-65 
   \edef\next@{\ifcase\count@21\or40\or23\or24\or25\or5E\or
         26\or2A\or28\or29\or5F\or2B\or7D\or31\or32\or33\or34\or35\or
         36\or37\or38\or39\or30\or2D\or3D\or5D\fi}%
   \mathchar"0\MathPiTwoScriptfam@\next@\relax}%
 \fi
 \SIFS@{#1}%
 \dimen@#2\relax\dimen@.95\dimen@\PSZ@
 \FONT@\nextiv@\nextiii@\textfont\MathPiTwoScriptfam\next@
 \dimen@#3\relax\dimen@.95\dimen@\PSZ@
 \FONT@\nextiv@\nextiii@\scriptfont\MathPiTwoScriptfam\next@
 \dimen@#4\relax\dimen@.95\dimen@\PSZ@
 \FONT@\nextiv@\nextiii@\scriptscriptfont\MathPiTwoScriptfam\next@}

% Make the catcode of @ a letter again. (The old version of mtmacs.tex
% would fiddle with the catcode of @.)
\catcode`\@=11
%%%%%%%%%%%%%%%%%%%%%%
%%
%%  In the following we define the fontfamilies. Here we follow mathtime.tex
%%
%%%%%%%%%%%%%%%%%%%%%%
%%       Math fonts
%%       Example of use:
%%
%%          \mathitalic{zmtmi}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%          \mathsymbols{zmtsy}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%          \mathextension{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%
%
% family 1  (uses ZMTMI or any of the other mathitalics fonts.)
\def\mathitalic#1#2#3#4#5#6#7{
  \font\teni=#1 at #2  \skewchar\teni=45
  \font\seveni=#1 at #5  \skewchar\seveni=45
  \font\fivei=#1 at #7   \skewchar\fivei=45
\textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei
  \ifAMSPPTloaded
%   \font\ninei=#1 at #3  \skewchar\ninei=45
    \font\eighti=#1 at #4  \skewchar\eighti=45
    \font\sixi=#1 at #6   \skewchar\sixi=45
  \fi
}
%
% family 2  (uses ZMTSY or any of the other mathsymbol fonts.)
\def\mathsymbols#1#2#3#4#5#6#7{
  \font\tensy=#1 at #2    \skewchar\tensy=48
  \font\sevensy=#1 at #5  \skewchar\sevensy=48
  \font\fivesy=#1 at #7   \skewchar\fivesy=48
\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
  \ifAMSPPTloaded
%   \font\ninesy=#1 at #3  \skewchar\ninesy=48
    \font\eightsy=#1 at #4  \skewchar\eightsy=48
    \font\sixsy=#1 at #6   \skewchar\sixsy=48
  \fi
}
%
% family 3  (uses MTEX)
\def\mathextension#1#2#3#4#5#6{
  \MTEX{#1}
  \font\tenex=\fontname\textfont\thr@@
  \ifAMSPPTloaded
%   \font\nineex=MTEX at #2
    \font\sevenex=MTEX at #4
    \font\eightex=MTEX at #3
  \fi
}
%
%%
%%%%%%%%%%%%%%%%%%%%%%
%%       Text fonts.
%%       Example of use:
%%
%%       (The format is similar to the math fonts)
%%           \Roman{zmtmr}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%           \Boldface{ptmrb}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%           \Italic{ptmri}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%           \Slant{ptmro}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%           \Typewriter{pcrb}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%           \CapsAndSmallCaps{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%% 
%% Each of these control sequences also defines a macro which defines
%% the font they call. For example, \Roman{ptmr}..{} defines the macro
%% \RomanFont to be ptmr. Thus, you can say things like
%%
%%            \font\bigtext=\RomanFont at 20pt 
%%
%% So, you can more easily change from one font style to another
%% since \bigtext will not be a specific font but rather a large
%% version of whatever the Roman font is. The macros so defined are: 
%%
%%            \RomanFont
%%            \ItalicFont
%%            \SlantFont
%%            \BoldfaceFont
%%            \TypewriterFont
%%            \CapsAndSmallCapsFont
%%
%% The font defining  macros are all implemented ad-hoc because of the
%% ad-hoc nature in which font families use fonts in the various macro
%% packages. The following table spells this out.
%%
%% PLAIN
%% fam  text    script  scriptscript
%% 3    10      10      10
%% 4    10      undef   undef
%% 5    10      undef   undef
%% 6    10      7       5
%% 7    10      undef   undef
%%
%% AMSTEX
%% fam  text    script  scriptscript
%% 3    10      10      10
%% 4    10      10      10
%% 5    10      10      10
%% 6    10      7       5
%% 7    10      undef   undef
%%
%% AMSTEX+AMSPPT.STY
%% fam  text    script  scriptscript
%% 3    10      7       7
%% 4    10      7       7
%% 5    10      10      10
%% 6    10      7       5
%% 7    10      undef   undef
%%
%% LAMSTEX (same as AMSTEX)
%% fam  text    script  scriptscript
%% 4    10      10      10
%% 5    10      10      10
%% 6    10      7       5
%% 7    10      undef   undef
%%
%

% family 0 (For this we use ZMTMR or any of the other mathroman fonts.)
\def\Roman#1#2#3#4#5#6#7{
 \font\tenrm=#1 at #2
 \font\sevenrm=#1 at #5
 \font\fiverm=#1 at #7
 \textfont0=\tenrm \scriptfont0=\sevenrm 
 \scriptscriptfont0=\fiverm
 \ifAMSPPTloaded 
%  \font\ninerm=#1 at #3
   \font\eightrm=#1 at #4
   \font\sixrm=#1 at #6
 \fi
 \edef\RomanFont{#1 }%
}
%
% family 4
\def\Italic#1#2#3#4#5#6#7{
 \font\tenit=#1 at #2
 \textfont4=\tenit
 \ifAMSPPTloaded
   \font\sevenit=#1 at #5
   \scriptfont4=\sevenit
   \scriptscriptfont4=\sevenit
%  \font\nineit=#1 at #3
   \font\eightit=#1 at #4
 \else
   \ifAMSTEXloaded
     \scriptfont4=\tenit
     \scriptscriptfont4=\tenit
   \fi
 \fi
 \edef\ItalicFont{#1 }%
}
%
% family 5
\def\Slant#1#2#3#4#5#6#7{
 \font\tensl=#1 at #2
 \textfont5=\tensl
 \ifAMSTEXloaded
   \scriptfont5=\tensl
   \scriptscriptfont5=\tensl
 \fi
 \ifAMSPPTloaded
%  \font\ninesl=#1 at #3
   \font\eightsl=#1 at #4
 \fi
 \edef\SlantFont{#1 }%
}
%
% family 6
\def\Boldface#1#2#3#4#5#6#7{
 \font\tenbf=#1 at #2
 \font\sevenbf=#1 at #5
 \font\fivebf=#1 at #7
 \textfont6=\tenbf \scriptfont\bffam=\sevenbf
 \scriptscriptfont\bffam=\fivebf
 \ifAMSPPTloaded
%  \font\ninebf=#1 at #3
   \font\eightbf=#1 at #4
   \font\sixbf=#1 at #6
 \fi
 \edef\BoldfaceFont{#1 }%
}
%
% family 7
\def\Typewriter#1#2#3#4#5#6#7{
 \font\tentt=#1 at #2
 \textfont7=\tentt
 \ifAMSPPTloaded
%  \font\ninett=#1 at #3
   \font\eighttt=#1 at #4
 \fi
 \edef\TypewriterFont{#1 }%
}
%
% (no family)
\def\CapsAndSmallCaps#1#2#3#4#5#6#7{
 \font\tensmc=#1 at #2
%\font\ninesmc=#1 at #3
 \font\eightsmc=#1 at #4
% If NOT in amsppt.sty define \sc
 \ifAMSPPTloaded\else \def\sc{\tensmc}\fi
 \edef\CapsAndSmallCapsFont{#1 }%
}
%
%
%%%%%%%%%%%%%%%%%%%%%%
%%       AMSfonts
%%       Example of use:
%%           \AMSFonts{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%
%%       NOTE: Works with AmsTeX version 2.1 or later.
%%
%% I first define a generic AMSfont loading mechanism. 
%% \AMSFontFamily{msa}{msam}{\msafam}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%      #1          msa = \font name prefix
%%      #2         msam = file name prefix
%%      #3      \msafam = family number
%%      #4         10pt = textfont
%%      #5          9pt = (for later use)
%%      #6          8pt = \eightpoint textfont
%%      #7          7pt = scriptfont
%%      #8          6pt = \eightpoint textfont
%%      #9          5pt = scriptscriptfont
%%
%
%% Those who use the Blue Sky PostScript AMS fonts take note.
%% The msam and msbm fonts in the PS versions come in 10, 7 and 5
%% point sizes. If AMSPPT.STY is used we also need 8 and 6 point
%% sizes. If you have use the PS versions of the AMS fonts you should
%% have the lines:
%%      \def\PSAMSFonts{TT}%  Blue Sky PS AMS fonts: True
%%      %%\def\PSAMSFonts{TF}% Blue Sky PS AMS fonts: False
%% in your AMSPPT.STY file. If you don't, do so NOW! Otherwise, the
%% mathtime.tex macros will not work correctly. 
%
\def\ef@#1{\expandafter\font\csname #1\endcsname}
\def\DefineAMSFontFamily#1#2#3#4#5#6#7#8#9{%
  \ef@{ten#1}=#210 at #4
  \ef@{seven#1}=#27 at #7
  \ef@{five#1}=#25 at #9
  \textfont#3=\csname ten#1\endcsname
  \scriptfont#3=\csname seven#1\endcsname
  \scriptscriptfont#3=\csname five#1\endcsname
  \ifAMSPPTloaded
    \if\PSAMSFonts
%     \ef@{nine#1}=#210 at #5
      \ef@{eight#1}=#27 at #6
      \ef@{six#1}=#25 at #8
    \else
%     \ef@{nine#1}=#29 at #5
      \ef@{eight#1}=#28 at #6
      \ef@{six#1}=#26 at #8
    \fi
  \fi
}
%
\def\AMSFonts#1#2#3#4#5#6{
  \ifAMSTEXloaded
    \ifx\loadmsam\empty
      \DefineAMSFontFamily{msa}{msam}{\msafam}{#1}{#2}{#3}{#4}{#5}{#6}
    \fi
    \ifx\loadmsbm\empty
      \DefineAMSFontFamily{msb}{msbm}{\msbfam}{#1}{#2}{#3}{#4}{#5}{#6}
    \fi
    \ifx\loadeufm\empty
      \DefineAMSFontFamily{eufm}{eufm}{\eufmfam}{#1}{#2}{#3}{#4}{#5}{#6}
    \fi
    \ifx\loadeufb\empty
      \DefineAMSFontFamily{eufb}{eufb}{\eufbfam}{#1}{#2}{#3}{#4}{#5}{#6}
    \fi
    \ifx\loadeusm\empty
      \DefineAMSFontFamily{eusm}{eusm}{\eusmfam}{#1}{#2}{#3}{#4}{#5}{#6}
    \fi
    \ifx\loadbold\empty
      \DefineAMSFontFamily{cmmib}{cmmib}{\cmmibfam}{#1}{#2}{#3}{#4}{#5}{#6}
    \fi
  \else\relax
  \fi
  \ifAMSPPTloaded
  \else
  \def\loadextrasizes@##1##2##3##4##5##6##7{%
    \ifx\undefined##1%
    \else
      \addto\tenpoint{\textfont##1##3\scriptfont##1##5%
         \scriptscriptfont##1##7}%
      \addto\eightpoint{\textfont##1##4\scriptfont##1##6%
         \scriptscriptfont##1##7}%
    \fi
  }%
  \fi
}

%%%%%%%%%%%%%%%%%%%%%%
%%       Other fonts (Old Style Digits) [Uses a \newfam!]
%%       Example of use:
%%           \OldNumerals{ptmrc}{10pt}{9pt}{8pt}{7pt}{6pt}{5pt}
%%
%% The \OldNumerals macro assumes that the digits are in the normal
%% place where numbers are found in a standard TeX font. If this is
%% not the case, some VF hacking will be necessary. 
%%
%% In PLAIN and AMSTEX the old style digits are accessed by calling
%% the math-italic family. Of course, the math-italic family is no
%% longer appropriate, so a new font family has to be created. Since
%% there are only 16 families, use this with care. Note also that
%% mtmacs.tex undefines \oldnos (although for some strange reason
%% \oldstyle is not touched). 
%%
%%         PLAIN:  \oldstyle
%%        AMSTEX:  \oldnos
%
\edef\innernewfam{\expandafter\noexpand\csname newfam\endcsname}
%
\def\DEFoldnos{%
  \def\oldnos##1{\RIfM@{\mathcode`\,="013B \fam\oldnumfam##1}\else
  \leavevmode\hbox{$\m@th\mathcode`\,="013B \fam\oldnumfam##1$}\fi}
}% a hack to get around \if.. \fi silliness. 
%
\def\OldNumerals#1#2#3#4#5#6#7{%
  \ifx\oldnumfam\undefined
    \innernewfam\oldnumfam % Define a \newfam only if \oldnumfam is
  \fi                      % not yet defined. 
  \font\tenoldnum=#1 at #2
  \font\sevenoldnum=#1 at #5
  \font\fiveoldnum=#1 at #7
  \textfont\oldnumfam=\tenoldnum \scriptfont\oldnumfam=\sevenoldnum
  \scriptscriptfont\oldnumfam=\fiveoldnum
  \ifAMSTEXloaded
    \DEFoldnos\let\DEFoldnos\undefined
  \else
    \def\oldstyle{\fam\oldnumfam \tenoldnum}
  \fi
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% The logos (taken from texnames.sty v1.08 by Nelson Beebe)
%%
%% Normally, the logo for AMSTEX uses family 2 fonts in its definition,
%% which of course will give garbage in the context of the MathTime
%% fonts. In texnames.sty the AMSTEX logo uses \cal: in this case if
%% \NewCalligraphic has been called with fonts other than the cmsy
%% fonts, the logo will look odd. In other words, the only way to get
%% the \AmSTeX logo to look the way it is supposed to look is to use
%% \NewCalligraphic with the cmsy fonts. 
%%
%% So I have decided that mathtime.tex will make `fake' logos which do
%% not use family 2 or \cal. If you want the real logos, you must call
%% the \MakeLogos macro. If \NewCalligraphic has been called the
%% \MakeLogos macro will use as definition for the logos the
%% definitions from texnames.sty. If \NewCalligraphic has _not_ been
%% called, then the logo macros remain faked. In the former case, if
%% fonts other than the cmsy fonts are used in \NewCalligraphic, the
%% logos may look wrong.
%%
% Define "fake" logos:
%
\ifAMSTEXloaded\def\AmSTeX{AMS\TeX}\fi% Fake it
%
\ifx\laxread@\undefined
\else
  \ifx\LamSTeX\undefined% Normally defined in paper.st
  \else
    \def\LamSTeX{LAMS\TeX}% Fake it. 
  \fi
\fi
%
\def\MakeLogos{% Definitions taken from texnames.sty, ver. 1.08
  \ifx\Calfam\undefined
  \else
    \ifAMSTEXloaded
      \def\AmSTeX{$\Cal A$\kern-.1667em\lower.5ex\hbox{$\Cal M$}%
              \kern-.125em$\Cal S$-\TeX}% Will look funny if cmsy fonts
                                        % not used in \NewCalligraphic.
    \fi
    \ifx\laxread@\undefined
    \else
      \ifx\LamSTeX\undefined
      \else
        \def\LamSTeX{L\raise.42ex\hbox{\kern-.3em\the\scriptfont\Calfam A}%
                     \kern-.2em\lower.376ex\hbox{\the\textfont\Calfam M}%
                     \kern-.125em {\the\textfont\Calfam S}-\TeX}%
      \fi
    \fi
  \fi
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Accents
\ifAMSTEXloaded
  \def\D#1{{\accent"C7 #1}}  % Change the dot accent for postscript
                             % fonts.
  \makeacc@\dot{0C7}         % AMSTEX math accent definition.
\else
  \def\dot{\mathaccent"70C7 }% PLAIN math accent definition.
  \def\.#1{{\accent"C7 #1}}
\fi
\def\H#1{{\accent"CD #1}}    % Fix Hungarian umlaut for PostScript fonts.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 6. Finish up
% Recover catcodes of @ and "
% Set the characters @ and " back to their former selves.
\recoverquotecodezqrz\let\recoverquotecodezqrz=\relax
\recoveratcodezzzz\let\recoveratcodezzzz=\relax
%
\endinput
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
